package cn.darkhorse.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 字典翻译注解  使用此注解可以对list和view接口返回的数据进行自动翻译, 如有需要可在DictAspect.doAround()方法中修改
 * 翻译后的数据不会覆盖原数据, 当前会在返回的数据中新增一个字段, 字段名为被翻译的字段名+_dictText, 值为翻译后的值 , 通过Constants.DICT_TEXT_SUFFIX可修改字段后缀
 * 目前只能翻译表层的数据,如果返回字段中有集合,那么集合中的元素目前无法进行翻译, 当前版本亦无法翻译逗号分隔多个key的字段  --20240531
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Dict {

    /**
     * 普通字典时为字典类型, 翻译表字典时指定字典key值对应的字段, 建议使用唯一字段,否则不知道会有什么错误
     * @return
     */
    String dictType();

    /**
     * 指定字典文本字段
     * @return
     */
    String dictText() default "";


    /**
     * 指定字典表
     * @return
     */
    String dictTable() default "";

    /**
     * 指定数据源,暂时没有用, 后续需要时再扩展
     * @return
     */
    String ds() default "";

    /**
     * 指定字典别名
     * @return
     */
    String alias() default "";

}
